1. The Field of the Invention
The field of the present invention is the area of software and hardware tools for monitoring and assessing performance of computer networks. More specifically, the present invention relates to such tools that allow the testing of a packet scheduler for conformance to a bandwidth reservation assigned to a particular packet flow.
2. Present State of the Art
Over time, the usefulness and benefits of stand alone computing devices, such as the ubiquitous personal computer, have been leveraged by allowing many of such computing devices to communicate one with another over a communications network. Network communication between computers allows many different kinds of applications to exist that are otherwise not possible with a stand alone computing device.
For communicating over a network, information that is to be transported from one computer to another is divided into a number of network communication packets. These network packets (also known simply as "packets") will eventually be transported across physical communications network. In the PC environment, transmission is handled by a network interface card residing in the personal computer. The network interface card acts as an interface in many instances with shared network media, such as an Ethernet network. Shared media, such as Ethernet, are characterized by all "nodes" on the media being able to transmit and receive packets over the common media. Origin and destination resolution is accomplished by addressing within the packet itself so that only the pertinent nodes will actually use the packet (though all nodes could read, retransmit, etc. any packet placed on the shared media). Furthermore, the PC environment will be assumed, though the discussion and application of the concepts apply to many different network computing environments as will be appreciated by those skilled in the art.
Initially, simple file transfers and messaging, such as e-mail, between networked computers constituted one major form of useful applications. Delays due to network traffic had little impact on the quality of service for such applications since a relatively long delay could be sustained without irritation on the part of the end user.
Currently, multimedia applications will have streaming data that is communicated from one computer to another such as successive sound or video frames. Such streaming data must be processed on a rate basis at the destination node and that same rate should be maintained for packet delivery over the network connection. Streaming data typically refers to a continuous set of successive packets that, in order to be processed correctly at the receiving computer, must have certain guaranteed transmission characteristics.
In other words, the packets should be sent at a certain rate with a certain limitation on the amount of variability between when successive packets are sent. Otherwise, packets will not be received and processed appropriately by the receiving computer and perceptible errors occur from the perspective of the end user. For example, a video frame may be lost or temporarily frozen if there is some sort of interruption in the stream of packets being processed.
In order to assure a certain quality of service, reservation of network bandwidth or other relevant resource is required. A number of different protocols have been developed, such as RSVP, ATM, etc., for making bandwidth reservations on all nodes that would be in charge of carrying network communication packets between the source and destination nodes. In this manner, once the bandwidth reservations are made, the packets may be sent as part of a data stream from the source node to the destination node with the assurance that a certain quality of service will result due to the bandwidth reservation.
When a packet data stream is associated with some form of resource guarantee or allocation, such as a bandwidth reservation, it is said to be a packet flow. In order to meet the service requirements for a data stream one or more packet flows can be established between the networked nodes. Packets are scheduled for delivery onto the communications network from the origination node based on the data stream's quality of service requirements. A "packet scheduler" refers to the functionality at a node, typically an origination node, used to place packets from a flow onto the shared media, such as a network through the network interface card and associated software. One example of a packet scheduler or sequencer is disclosed in co-pending U.S. patent application Ser. No. 09/094,045 filed on Jun. 9, 1998, and is hereby incorporated by reference.
A live audio-video connection that is sent over the Internet or other packet switching network is an example of a data stream having quality of service requirements. Such an audiovisual data stream may occur as part of a video-telephone and would require that the information be delivered quickly and without too much delay so that quality pictures and sound could be perceived by the end user. When quality of service requirements are not met in such an application, a jerky or frozen image may result or the picture and sound may appear too unnatural for interaction due to delay.
A more "real world" example of bandwidth reservation and quality of service may be seen in the use of High Occupancy Vehicle ("HOV") lanes on metropolitan freeways. For specific times, typically corresponding to rush hour commuter traffic, an HOV lane is "reserved" for vehicles having two, three, or more passengers. The "reservation" is dropped outside those times and provides a certain "quality of service" to the passengers within a qualifying vehicle so that they may commute more quickly during high traffic times.
With respect to a packet scheduler that is responsible for placing packets onto the shared media network, packets are only introduced insomuch as they allow the bandwidth reservations previously made for particular packet flows to be met. It becomes important to test whether a packet scheduler is performing as designed as well as gathering other network packet performance data.
Network monitoring occurs when all packets going over the network are monitored or stored by a particular node, not just the packet destined for or originating from the node. This allows network traffic rates to be quantified and other useful information to be gathered.
Some network monitoring systems, such as Netmon provided by Microsoft, are highly sophisticated and extensible. Netmon allows custom Dynamic Link Libraries ("DLLs") for individual packet types to be written that allow customized information about a packet to be displayed. Extensibility allows flexibility in that different packet types may be easily added into a network monitoring software system.
One known way to monitor network traffic from a given node entails doing a "capture" on all packets available over the shared media for a particular time period (e.g., 15 seconds, 1 minute, etc.). The capture is stored on disk or other storage and is then analyzed after the capture is taken. Statistics can be calculated, such percent utilization of the media, and other relevant characteristics ascertained. Such statistics are not normally done on a per-flow basis as would be necessary to test the performance of a packet scheduler against the previous reservation of bandwidth.